一、CORBA的由來
CORBA全稱是公共對象請求代理體系結(jié)構(gòu)(common object request broker architecture),它是由IBM、HP等多家公司聯(lián)合開發(fā)的部件軟件的體系結(jié)構(gòu)和部件接口標(biāo)準(zhǔn)。1997年8月版的CORBA2.1的版權(quán)頁上已方21個公司、組織。而支持CORBA的對象管理集團(tuán)OMG已達(dá)750多家公司。
對象管理組英文名是Object Management Group,簡稱為OMG。OMG是以美國為主體的非盈利性國際組織,共目標(biāo)是為在計算機(jī)網(wǎng)絡(luò)上獨(dú)立開發(fā)的應(yīng)用軟件建立一個相互之間互操作性的標(biāo)準(zhǔn)。OMG的成員已包括絕大多數(shù)信息技術(shù)公司和終端用戶,其中心任務(wù)是接納廣泛認(rèn)可的對象管理體系結(jié)構(gòu)(Object Management architecture,簡稱為OMA)
或其語境(context)中的接口和規(guī)程的規(guī)范。OMA以分布式的對象為集成單位。以對象為
基礎(chǔ)來構(gòu)作分布犬應(yīng)用系統(tǒng)的最大優(yōu)點(diǎn)是對象的封裝性:對象的數(shù)據(jù)和狀態(tài)只能通過對
象上定義的一組運(yùn)算來訪問,而不允許直接存取。因此易于處理平臺的異構(gòu)性,因?yàn)閿?shù)據(jù)表達(dá)的互異已被隱藏,從而簡化了系統(tǒng)的集成。
最初,OMG在1990年制訂了對象管理體系結(jié)構(gòu)OMA。OMA是比CORBA更高一層的概念,它定義了一種體系結(jié)構(gòu),在OMA之上可以用任何方法來實(shí)現(xiàn)。CORBA是其中的一種實(shí)現(xiàn)方案。
二、對象管理體系結(jié)構(gòu)OMA
OMA由對象模型(objet model)和參考模型(reference model)組成。對象模型主要定義了如何描述在異種(heterogeneous)環(huán)境中的分布式對象;參考模型則刻畫了對象之間的交互,其組成可以由圖1來表示。
圖1 OMA參考模型
其中ORB作為對象互相通信的軟總線,用來聯(lián)系客戶端和對象間的通信。ORB是OMA參考模型的核心,它保證在分布式異構(gòu)環(huán)境中透明地向?qū)ο蟀l(fā)送和接收請求,幫助實(shí)現(xiàn)應(yīng)用部件之間的互操作。
在ORB之上有4個對象接口:
(1)對象服務(wù)object services(OS)。定義加入ORB的系統(tǒng)級服務(wù),如安全性、命名和事務(wù)處理,它們是與應(yīng)用域無關(guān)的。對象服務(wù)是一些最有可能被用來支持分布式對象環(huán)境F構(gòu)造應(yīng)用的標(biāo)準(zhǔn)化部件。目前通過的對象服務(wù)包括對象命名服務(wù)、事件服務(wù)、對象生存期服務(wù)、永久對象服務(wù)、對象關(guān)系服務(wù)以及事務(wù)服務(wù)、并發(fā)控制服務(wù)等等。
(2)公共設(shè)施common facilities(CF)。水平級的服務(wù),定義應(yīng)用程序級服務(wù),如復(fù)合文檔等。公共設(shè)施是比對象服務(wù)粒度更大的可重用的部件塊。它主要用來幫助構(gòu)造跨多個應(yīng)用域的應(yīng)用程序。典型的公共設(shè)施包括用戶接口、信息管理、系統(tǒng)管理和任務(wù)管理等。
(3)領(lǐng)域接口如domain interfaces(DI)。面向待定的領(lǐng)域,在OMA中所處的位置與對象服務(wù)與公共設(shè)施相似。
(4)應(yīng)用接口application interfaces(AI)。面向指定的現(xiàn)實(shí)世界應(yīng)用。是指供應(yīng)商或用戶借助于ORB、公共對象服務(wù)及公共設(shè)施而開發(fā)的特定產(chǎn)品,它不在CORBA體系結(jié)構(gòu)中標(biāo)推化。
同時,OMA還定義了OMA參考模型的應(yīng)用:對象框架(object frameworks)。它是多個部件組成的一種面向特定領(lǐng)域的框架結(jié)構(gòu),每個部件由一個OMA接口組成。其組成可
以用圖2說明。
圖2 OMA的對象框架
三、CORBA的結(jié)構(gòu)基礎(chǔ)
CORBA的結(jié)構(gòu)基礎(chǔ)是OMG的核心對象模型(CORE object model)。部件可作為對象,以客戶身份通過封裝的接口提出請求,并獲取服務(wù)對象所提供的服務(wù),形成協(xié)同工作的系統(tǒng)。為了達(dá)到互操作性,設(shè)計了對象請求代理ORB(object request broker)作為通信的基礎(chǔ)設(shè)施。ORB能夠幫助對象實(shí)現(xiàn)和網(wǎng)絡(luò)上另一個對象的握手過程。1994年末出臺的
C0RBA 2.0允許不同廠商的ORB協(xié)同工作。它截獲客戶的請求,并負(fù)責(zé)找出實(shí)現(xiàn)其請求的服務(wù)對象;傳送參數(shù)及調(diào)用方法給服務(wù)對象,并負(fù)責(zé)返回結(jié)果??蛻舨槐刂婪?wù)對
象是位于同一機(jī)器或是跨網(wǎng)位于不同機(jī)器上;也不要求客戶與服務(wù)對象是否有同一編程
語言、運(yùn)行于何種平臺、使用何種操作系統(tǒng)或有否其他特征。即由ORB來提供異步分布
環(huán)境中不同機(jī)器上應(yīng)用的互操作性。
CORBA是建立在OMA概念之上,是OMG所采納的第一個標(biāo)準(zhǔn),同時也是OMA的一個重要組成部分。CORBA的OMA定義了一個四層模型,并且規(guī)定了其IDL語言(interface definitin language)工作于各個層面。四層模型的底層是ORB;直接建筑在ORB層之上的,是Object Service Layer,它負(fù)責(zé)對象的命名、創(chuàng)建和管理;第三層是Common Facilities Layer,在這一層完成用戶對象直接使用的一些功能,而最高層是Business 0bject,像Java和ActiveX applets等。
對應(yīng)OMA參考模型,CORBA也相應(yīng)的有4個對象接口接口對應(yīng):
. CORBA服務(wù)(CORBA servies)對應(yīng)對象服務(wù)。
. 應(yīng)用對象(application object)對應(yīng)應(yīng)用接口。
. CORBA領(lǐng)域(CORBA domains)對應(yīng)領(lǐng)域接口。
目前CORBA已經(jīng)發(fā)展到CORBA 2.0。CORBA 2.0主要包括以下幾個部分:
·0RB核心(core)。
·OMG接口定義語言IDL。
·語言映射(language mapping)。
·運(yùn)行機(jī)制。
·靜態(tài)調(diào)用:包括Stub and Skeleton。
·動態(tài)調(diào)用:包括動態(tài)Skeleton和接口庫(interface repository)。
·對象適配器(object adapter)。
·Inter—ORB協(xié)議。
C0RBA的組成見圖3,該圖表示了客戶、服務(wù)的執(zhí)行對象與0RB接口間的關(guān)系。
圖3 CORBA的組成
ORB能識別的協(xié)議是OMG的接口定義語言IDL。它可完整地確定部件的接口——即客戶所需使用接口的全部信息。
IDL定義的接口經(jīng)IDL編譯器編譯后能產(chǎn)生客戶的樁(stub)及執(zhí)行對象的骨架(skeleton)這類能與ORB通信的接口:
(1)接口樁stub。在編譯時確定的靜態(tài)接口。它位于客戶對象的本地,接受客戶的請求,對客戶來說相當(dāng)于遠(yuǎn)程的執(zhí)行對象。接口樁向ORB提交請求。
(2)動態(tài)調(diào)用接口(DII)。用于編譯時不能確定的請求。與接口樁作用相同。
(3)骨架Skeleton。分動態(tài)骨架與靜態(tài)骨架。它針對執(zhí)行對象來說代表了遠(yuǎn)程客戶的作用,可在本地調(diào)用執(zhí)行對象服務(wù),并與ORB通信。
(4)對象適配器。提供執(zhí)行對象可以訪問ORB服務(wù)的基本接口,其作用是產(chǎn)生及解釋對象引用、安全交互、登記和執(zhí)行等等。
ORB可以用各種方式來實(shí)現(xiàn),只要滿足CORBA規(guī)定的規(guī)范即可。具體ORB實(shí)現(xiàn)之間亦可存在接口關(guān)系。
CORBA作為標(biāo)準(zhǔn)化接口的規(guī)范及體系結(jié)構(gòu)正在發(fā)展中,最初僅考慮基本機(jī)制。隨著對異構(gòu)分布應(yīng)用互操作性的深入認(rèn)識,不斷有人提出CORBA應(yīng)提供更多的服務(wù)要求RFP(request for Proposal),如命名服務(wù)、交易服務(wù)和生命周期等等。CORBA 2.1中都已納入以上服務(wù)要求。但新的要求,如實(shí)時系統(tǒng)CORBA、CORBA部件模型和CORBA版本語言等等又作為新的RFP已正式提出。CORBA的產(chǎn)品亦紛紛問世,當(dāng)然又產(chǎn)生了各
CORBA產(chǎn)品之間的兼容性問題了。
在1996年中期,CORBA向Internet適應(yīng)的要求被提出,并得到了除微軟以外的眾多公司的響應(yīng)。CORBA的開發(fā)者創(chuàng)造了被OMG稱作“ORBlet”的Java applet,它被下載到使用Java的瀏覽器后,能夠同其他與CORBA標(biāo)準(zhǔn)兼容的對象和服務(wù)進(jìn)行通信交互。現(xiàn)在ORBlet已經(jīng)能夠從Sun、HP、IBM、Iona Technologies InL、Oracle Corp.處得到。最
終,對CORBA的支持將集成到Java瀏覽器之中。
直到最近,OMG仍然將重點(diǎn)放在對象級的標(biāo)準(zhǔn)上。OMG僅僅制定標(biāo)準(zhǔn),而并不生產(chǎn)軟件產(chǎn)品或分布部件平臺。但由于微軟的壟斷地位和市場的壓力,它也發(fā)展相應(yīng)的標(biāo)準(zhǔn)來
保證CORBA和COM對象的交互兼容性。同樣的理由也將使之出臺DCOM和CORBA的交互協(xié)議。
四、應(yīng)用
CORBA定義了一個帶有開放軟件總線的分布式結(jié)構(gòu),在這一結(jié)構(gòu)中,來自不同廠商的、運(yùn)行在不同操作系統(tǒng)上的對象,能夠進(jìn)行互操作,
CORBA定義了分布式對象如何實(shí)現(xiàn)互操作。在World Wide Web盛行之前,特別是 Java編程語言風(fēng)靡之前,C++開發(fā)者基本將CORBA作為其高端分布式對象的解決方案。CORBA對象可以用任何一種cORBA軟件開發(fā)商所支持的語言,如C、C++、Java、Ada和Smalltalk來編寫。
使用接口描述語言(interface description language)編寫的對象接口,使得與語言無關(guān)的獨(dú)立性成為可能。IDL使得所有CORBA對象以—種方式被描述,僅僅需要一個由本地語言(C/C++、CORBA、Java)到IDL的“橋梁”。CORBA對象的互通信要以對象請求代理(object request broker)為中介,這種互通可以在多種流行通信協(xié)議之上(如TCP/IP或是IPX/SPX)實(shí)現(xiàn)。在TCP/IP上,來自于不同開發(fā)商的ORB用nternet Inter-Orb協(xié)議(IIOP)進(jìn)行通信。IIOP是ORB保證對象間互操作的必要的通信協(xié)議,是CORBA 2.0標(biāo)準(zhǔn)的一部分。
當(dāng)前,CORBA對于流行的操作系統(tǒng)如Windows、Unix系列都有很好的支持。就是說,CORBA對象可以運(yùn)行在任何一種CORBA軟件開發(fā)商所支持的平臺上,如Solaris、
Windows95/NT、Open VMS、Digital Unix、HP—UX或AIX等。換句話說,我們可以在
Windows95下運(yùn)行Java應(yīng)用程序,同時動態(tài)調(diào)入并使用C++對象,而實(shí)際上,該對象可
能存儲于一個在Internet上的Unix Web服務(wù)器上。目前,對于較為流行的編程語言(包括(C++、SmalltaLk、Java和Ada95),已經(jīng)有了許多第三方的ORB。隨著其他語言的逐漸流行,CORBA開發(fā)商毫無疑問地要做出相應(yīng)的ORB來支持它們。
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權(quán)威部門公布的內(nèi)容為準(zhǔn)!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點(diǎn),為學(xué)員考試保駕護(hù)航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評論 查看完整評論 | |